package com.cloud.charts4a.data;

import android.graphics.Rect;

/**
 * Abstract Chart Data<p/>
 *
 * @param <T>	the type of objects that this object may be compared to
 * 
 * @version
 * <ol>
 * 	<li>2010/07/09 CloudTu：First Release</li>
 * </ol>
 * 
 * @author cloudtu 
 */
public abstract class AbstractChartData<T> implements Comparable<T> {
	protected float yValue;		//Y軸上的數值資料	
	protected Float xPosition;	//x-axis position in chart，當這筆資料超出chart的畫面時,xPosition設成null
	protected Float yPosition;	//y-axis position in chart，當這筆資料超出chart的畫面時,yPosition設成null	
	protected String tipText;		//這筆資料被點擊時，顯示出來的提示文字
	protected Rect tipRect;		//這筆資料被點擊時，顯示出來的提示文字背景框範圍
	protected boolean isShowTip;	//提示文字是否處於顯示中狀態	
	
	/**
	 * 取得Y軸上的數值資料
	 * 
	 * @return	Y軸上的數值資料
	 */
	public float getYValue() {
		return yValue;
	}		
	
	/**
	 * Get x-axis position in chart
	 * 
	 * @return	x-axis position in chart
	 */
	public Float getXPosition() {
		return xPosition;
	}

	/**
	 * set x-axis position in chart
	 * 
	 * @param xPosition	x-axis position in chart
	 */
	public void setXPosition(Float xPosition) {
		this.xPosition = xPosition;
	}

	/**
	 * Get y-axis position in chart
	 * 
	 * @return	y-axis position in chart
	 */	
	public Float getYPosition() {
		return yPosition;
	}

	/**
	 * set y-axis position in chart
	 * 
	 * @param yPosition	y-axis position in chart
	 */	
	public void setYPosition(Float yPosition) {
		this.yPosition = yPosition;
	}	
	
	/**
	 * Get tip text
	 * 
	 * @return the tipText
	 */
	public String getTipText() {
		return tipText;
	}

	/**
	 * Set tip text
	 * 
	 * @param tipText the tipText to set
	 */
	public void setTipText(String tipText) {
		this.tipText = tipText;
	}
	
	/**
	 * Get tip rectangle
	 * 
	 * @return the tipRect
	 */
	public Rect getTipRect() {
		return tipRect;
	}

	/**
	 * Set tip rectangle
	 * 
	 * @param tipRect the tipRect to set
	 */
	public void setTipRect(Rect tipRect) {
		this.tipRect = tipRect;
	}
	
	/**
	 * 目前提示文字是否處於顯示中狀態
	 * 
	 * @return 提示文字是否處於顯示中狀態
	 */
	public boolean isShowTip() {
		return isShowTip;
	}

	/**
	 * 設定提示文字是否處於顯示中狀態
	 * 
	 * @param isShowTip true:show / false:not show 
	 */
	public void setShowTip(boolean isShowTip) {
		this.isShowTip = isShowTip;
	}	
}
